﻿using System.Linq.Expressions;

namespace CoreEx.Database.Query.Linq
{
    /// <summary>
    /// Represents a class that is capable of translating an 
    /// <see cref="Expression"/> into an <see cref="IExpression"/>
    /// </summary>
    public interface IExpressionTranslator
    {
        /// <summary>
        /// Translates the <paramref name="expression"/> into an <see cref="IExpression"/> instance.
        /// </summary>
        /// <param name="expression">The <see cref="Expression"/> to translate.</param>
        /// <returns>An <see cref="IExpression"/> instance that represents the translated <see cref="Expression"/>.</returns>
        IExpression Translate(Expression expression);        
    }
}
